package editorsvg.propiedades;

import editorsvg.gui.generico.DialogoAceptarCancelar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;

/**
 * Propiedad que contiene un objeto string multilínea.
 *
 * @author Jorge Berjano
 */
public class PropiedadTextoMultilinea extends PropiedadTexto {       
    protected JButton botonEdicion;
    
    /** Constructor por defecto */
    public PropiedadTextoMultilinea() {        
    }
    
    public PropiedadTextoMultilinea(String nombre) {
        super(nombre, nombre);
    }
    
    public PropiedadTextoMultilinea(String nombre, String alias) {
        super(nombre, alias);
    }
 
    @Override
    public JComponent obtenerComponenteModificacion() {
        if (botonEdicion == null) {
            botonEdicion = new JButton("...");
            botonEdicion.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent evento) {
                    botonPulsado(evento);
                }
                
            });
        }
        return botonEdicion;
    }
    
    // Si se pulsa el botón se muestra un menu contextual con las opciones
    private void botonPulsado(ActionEvent evento) {
        DialogoAceptarCancelar dlg = new DialogoAceptarCancelar(null, getNombreCampo());
        PanelEdicionTexto panelEdicionTexto = new PanelEdicionTexto();
        panelEdicionTexto.setTexto(toString());
        dlg.setPanelInterior(panelEdicionTexto);
        dlg.setVisible(true);
        if (dlg.getResultado() == DialogoAceptarCancelar.ACEPTAR) {
            parsearPropiedad(panelEdicionTexto.getTexto());
        }
    }
        
    @Override
    public boolean permitirEditarTexto() {
        return false;
    }
}
